
	/********************************************************************/
	/*                                                                  */
	/*                                                                  */
	/*              Copyright (C), 1993  SEIKO EPSON Corp.              */
	/*              ALL RIGHTS RESERVED                                 */
	/*                                                                  */
	/*                                                                  */
	/*   file name : smcvals.c                                          */
	/*                                                                  */
	/*                                                                  */
	/*   smcvals.c sets the some special codes, such as NaN, Inf and    */
	/*    -Inf, also sets the useful nubmer.                            */
	/*                                                                  */
	/*   Revision history                                               */
	/*       93/08/31    first release                 K.Shinozuka      */
	/*       93/12/17    change file name              K.Shinozuka      */
	/*	 97/3/27     change to const		M.Kudo		    */
	/*                                                                  */
	/********************************************************************/

#ifdef UNIX
struct native {                           /* A certain c compiler doesn't allow the */
        unsigned long _LL;                /* initializeing a union. I used this structure */
        unsigned long _LH;                /* to initialize DBL_LNG NAN, P_INF, N_INF */
};

#ifdef BIG_ENDIAN
const struct native NAN = { 0x7ff80000, 0 };    /* special code for not a number ( NaN ) */
const struct native P_INF = { 0x7ff00000, 0 };  /* special code for +overflow ( +Inf ) */
const struct native N_INF = { 0xfff00000, 0 };  /* special code for -overflow ( -Inf ) */
#else
const struct native NAN = { 0, 0x7ff80000 };
const struct native P_INF = { 0, 0x7ff00000 };
const struct native N_INF = { 0, 0xfff00000 };
#endif

#else
#ifndef DBL_LNG_TYPE 
#define DBL_LNG_TYPE 

typedef union {
    struct {
#ifdef BIG_ENDIAN
        unsigned long _LL;
        unsigned long _LH;
#else
        unsigned long _LH;
        unsigned long _LL;
#endif
    } st;
    double _D;
} DBL_LNG;
#endif                                  /* endif DBL_LNG_TYPE */

#ifdef BIG_ENDIAN
const DBL_LNG NAN = { 0x7ff80000, 0 };        /* special code for not a number ( NaN ) */
const DBL_LNG P_INF = { 0x7ff00000, 0 };      /* special code for +overflow ( +Inf ) */
const DBL_LNG N_INF = { 0xfff00000, 0 };      /* special code for -overflow ( -Inf ) */
#else
const DBL_LNG NAN = { 0, 0x7ff80000 };
const DBL_LNG P_INF = { 0, 0x7ff00000 };
const DBL_LNG N_INF = { 0, 0xfff00000 };
#endif

#endif                                  /* endif UNIX */

const double HUGE_RAD = 3.14e9;
